Odchytenie minimalizacie okna .... Kde je chyba ???

Otázka od: Richard Siegl

23. 9. 2002 9:58


Potrebujem odchytit udalost minimalizacie okna uzivatelom.
Udalosti restore, maxim funguju ale minimalizacia nie .
Neviete kde je chyba ???

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
    procedure Zmena(var Message: TMessage); message WM_SIZE;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure tform1.Zmena(var Message: TMessage);
begin
        if message.WParam = SIZE_MINIMIZED then ShowMessage('minim');
        if message.WParam = SIZE_MAXIMIZED then ShowMessage('maxim');
        if message.WParam = SIZE_RESTORED then ShowMessage('resto');
        inherited;
end;

----------------------
Richard Siegl
ELAS spol. s r.o.
Vinohradnícka 6
97101 Prievidza
tel.: +421 46 5151239
Email: rsiegl@elas.sk
Web: www.elas.sk
----------------------

Odpovedá: ing. Jan Fiala

23. 9. 2002 11:14

Melo by stacit povesit si vlastni udalost na Application.OnMinimize.

private
procedure ApplicationEventsMinimize(Sender: TObject);

implementation
procedure TForm1.ApplicationEventsMinimize(Sender: TObject);
begin
  ShowMessage('minim');
end;

v OnCreate formu:
Application.OnMinimize := ApplicationEventsMinimize;


--
ing. Jan Fiala
mailto:jan.fiala@iol.cz

23.9.2002 Richard Siegl:

> Potrebujem odchytit udalost minimalizacie okna uzivatelom.
> Udalosti restore, maxim funguju ale minimalizacia nie .
> Neviete kde je chyba ???

Odpovedá: Ing. Jiri SOKOL

23. 9. 2002 11:39

> Potrebujem odchytit udalost minimalizacie okna uzivatelom.
> Udalosti restore, maxim funguju ale minimalizacia nie .
> Neviete kde je chyba ???

> procedure tform1.Zmena(var Message: TMessage);
> begin
> if message.WParam = SIZE_MINIMIZED then ShowMessage('minim');
> if message.WParam = SIZE_MAXIMIZED then ShowMessage('maxim');
> if message.WParam = SIZE_RESTORED then ShowMessage('resto');
> inherited;
> end;
Ahoj,
zkus misto ShowMessage pouzit logovani do souboru. Ja myslim, ze je to co do
kodu spravne.
Logicky bych usuzoval, ze aplikace po minimalizaci nema byt aktivni ... tudiz
i zobrazovani hlasky ShowMessage bych nepouzil.
Je to jen myslenka ...
Ahoj Jirka

Ing. Jiri Sokol, js-delphi@seznam.cz, +420251431187
D6ProfSP2,WinNT
amatersky
programator

______________________________________________________________________
Reklama:
Mapy Prahy, Brna a Cech najdete na http://www.mapy.cz

Odpovedá: Richard Siegl

23. 9. 2002 11:03

Dakujem .... funguje to spravne

----- Original Message -----
From: "ing. Jan Fiala" <jan.fiala@iol.cz>
To: <delphi-l@clexpert.cz>
Sent: Monday, September 23, 2002 11:20 AM
Subject: Re: Odchytenie minimalizacie okna .... Kde je chyba ???


> Melo by stacit povesit si vlastni udalost na Application.OnMinimize.
>
> private
> procedure ApplicationEventsMinimize(Sender: TObject);
>
> implementation
> procedure TForm1.ApplicationEventsMinimize(Sender: TObject);
> begin
> ShowMessage('minim');
> end;
>
> v OnCreate formu:
> Application.OnMinimize := ApplicationEventsMinimize;
>
>
> --
> ing. Jan Fiala
> mailto:jan.fiala@iol.cz
>
> 23.9.2002 Richard Siegl:
>
> > Potrebujem odchytit udalost minimalizacie okna uzivatelom.
> > Udalosti restore, maxim funguju ale minimalizacia nie .
> > Neviete kde je chyba ???
>
>
>

Odpovedá: Blazek Jaroslav

23. 9. 2002 11:34

Ahoj,

> rsiegl@elas.sk 23.9.02 11:00 >>>

>Potrebujem odchytit udalost minimalizacie okna uzivatelom.
>Udalosti restore, maxim funguju ale minimalizacia nie .
>Neviete kde je chyba ???

type
  TForm1 = class(TForm)
  private
    procedure WMSysCommand(var AMsg:TMessage); message WM_SYSCOMMAND;
  end;

procedure TForm1.WMSysCommand(var AMsg:TMessage);
begin
 case AMsg.WParam of
  SC_MINIMIZE : ShowMessage('Minimize');
  SC_MAXIMIZE : ShowMessage('Maximize');
  SC_RESTORE : ShowMessage('Restore');
 end;
 inherited;
end;


S pozdravem

Bc. Jaroslav Blazek
Access-IT Ceska Lipa
mailto:jaroslav.blazek@access-it.cz
http://www.access-it.cz
ICQ# : 133673990
+420605/813644

Odpovedá: Ondrej Kelle

23. 9. 2002 11:55

> Potrebujem odchytit udalost minimalizacie okna uzivatelom.

type
  TForm1 = class(TForm)
  private
    procedure WMSysCommand(var Message: TWMSysCommand); message
WM_SYSCOMMAND;
  end;

implementation

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
  case Message.CmdType and $FFF0 of
    SC_MINIMIZE:
      ShowMessage('minimize');
    SC_MAXIMIZE:
      ShowMessage('maximize');
    SC_RESTORE:
      ShowMessage('restore');
  end;
  inherited;
end;

> Melo by stacit povesit si vlastni udalost na Application.OnMinimize.

To funguje len pre hlavne okno aplikacie.

HTH
TOndrej

Odpovedá: Blazek Jaroslav

23. 9. 2002 14:07

Ahoj,

> jan.fiala@iol.cz 23.9.02 11:20 >>>
>Melo by stacit povesit si vlastni udalost na Application.OnMinimize.
>Application.OnMinimize := ApplicationEventsMinimize;

timhle to nezajistis ale pro vsechna okna, jen pro to hlavni, pro ostatni musis
odchytavat WM_SYSCOMMAND


S pozdravem

Bc. Jaroslav Blazek
Access-IT Ceska Lipa
mailto:jaroslav.blazek@access-it.cz
http://www.access-it.cz
ICQ# : 133673990
+420605/813644

Odpovedá: ing. Jan Fiala

23. 9. 2002 12:48

23.9.2002 Blazek Jaroslav:
>> jan.fiala@iol.cz 23.9.02 11:20 >>>
>>Melo by stacit povesit si vlastni udalost na Application.OnMinimize.
>>Application.OnMinimize := ApplicationEventsMinimize;

> timhle to nezajistis ale pro vsechna okna, jen pro to hlavni, pro
> ostatni musis odchytavat WM_SYSCOMMAND

Vim, ale predpokladal jsem, ze jde o hlavni okno. Pro MDI aplikaci a
child okna to samozrejme neni...

--
ing. Jan Fiala
mailto:jan.fiala@iol.cz